Generally, this invention relates to the field of enhanced organization of computer memory or file information and processes for managing the computer memory or file information at other than simply the application program level. It may be used to overcome the usability barriers associated with He coupling and uncoupling of storage devices to a computer system. Specifically, the invention focuses on methods to gather information about hierarchical directories on physical file storage devices, the organization or manipulation of directory information into a global virtual directory system that can serve as a master directory for a user and processes that more efficiently manage system data, regardless of application, based on information obtained from the virtual directory system.
Over the years, the hierarchical directory system that organize computer system data storage have been enhanced to make them more powerful and easier for the end user to understand. Typically these improvements have focused on a shift from a y oriented system to systems that are graphically oriented (for example, the shift from a DOS type of directory listing to a graphical directory display of files as provided by products like Microsoft(trademark) Windows(trademark) for Workgroups ver. 3.11. This approach has been directed at increasing the user""s understanding of the files available, but has not solved the problems caused by a rigid directory structure nor the difficulty in locating files that have been removed from the system or that are located in the maze of subdirectories.
The hierarchical directory systems are intended to allow users to organize their data in ways that makes it easier for them to understand. This is done by creating directories, or folders, for specific classes of data such as word processing documents or computer programs. Once a directory structure for the storage system is defined it becomes a tedious and difficult task to reorganize the directory structure. Also, files of the same name cannot be stored within the same directory due to the common need for files to be differentiated by unique names even though it is common for users to desire to save copies of the same file at different points in the evolution of the file. For example, it would be very convenient if a writer could keep the same file name for an article and differentiate the various versions of the article by the date and time of creation of each version rather than having to use minor variations on the original name.
Perhaps surprisingly, the concept of flexibly organizing a hierarchical directory system has typically been utilized at only the application level; that is, it has been applied only in separately utilized programs which may act independently of other programs and not as one which applies to all programs. For instance, an application level process which addresses a user need for the ability to easily recognize, filter and search files is identified in U.S. Pat. No. 5,544,360 which describes an application program that allows the user to filter and categorize the hierarchical directory system to ease finding files. The limitation of this invention is that it is an application program, or file manager, that can be used as a browser by the user but not directly accessed by other programs in the same manner that the native hierarchical directory system can be accessed. Hence, a second application program such as a word processor would not be able to utilize the sorted information only the original application program could. Hence, there is a need for a configurable directory system that can be configured and made accessible at the operating system level such that all application programs can utilize the configured information.
A common constrain of the traditional or conventional directory hierarchy is that it is oriented towards a hierarchical starting point of physical storage device, be it a hard disk, floppy disk, high capacity removable disk, tape, remote network device, or other storage media. Due to the coupling of a physical device to the directory hierarchy the user must organize their data in such a way that it fits the physical parameters of the selected storage medium.
Various methods have been employed to try to decouple the physical nature of the storage device from the directory hierarchy. It is relatively common in network environments to present a file server as a single storage entity even though it is composed of multiple hard disks (disclosed in U.S. Pat. No. 5,129,088). Or, a new file system can be created as in U.S. Pat. No. 5,333,315 to create a file system that is based purely on the hierarchy of the directory name space and not that of physical device. Again in the network setting, a method called hierarchical storage management is employed that has the primary purpose of freeing up storage space on a physical device, such as a hard disk by migrating files to another storage device, such as a tape drive, and leaving a place holder for the file so that it appears to the user that the file is still on primary storage. When the place holder file is accessed, the hierarchical management system retrieves the file from secondary storage (disclosed in U.S. Pat. No. 5,564,037). This same technique has been employed on a desktop computer using the desktop computer""s local storage devices. These techniques allow the user to treat multiple storage devices of dissimilar nature as a single device. Such systems, however, only offer the user limited organizational control over the data. They do not offer the full ability to manipulate the file system information as does the present invention and are often limited to merely migrating data to secondary storage devices.
With the recent advent of low cost, high capacity removable storage, and the ability to store data remotely on the Internet, it is becoming increasingly difficult for the user to organize their data and to recall where their data is located. A 100 MB removable disk can store hundreds or thousands of data files. Likewise, a remote storage site on the Internet used for archiving might have thousands of a user""s data files. Hence, the sheer volume of files that can exist on individual directories often makes it a very difficult task to find a stored file without traversing through hundreds of subdirectories. In the case of removable disks a user may have ten or more disks each with hundreds of files. Very clearly it becomes difficult to understand what file is stored where. Furthermore, the need for removable storage, or remote storage is increasing rapidly due to the easy availability of data on the Internet and the shift towards digitized video information (e.g., movies stored as digital information that can then be shown on your computer) which consumes great amounts of computer storage. Hence, there is an ever-increasing need for a directory system that can keep track of all of these files on a single database that is accessible to an operating system.
In addition, one characteristic that high capacity removable storage, for example, has is that if the disk is removed from the computer system or if the Internet connection is not active the user may not be able to determine which files are stored on the disconnected device until the disconnected device is reconnected to the computer system. Essentially, these conventional directories are transient in nature since their information is lost to the system when the memory devices are disconnected or removed from the system. Hence, there is a need for a directory system that maintains directory information that a user of a computer system (i.e., a computer operator) can utilize even when the storage media is not coupled to the computer system.
Also, while some large computer systems have been able to enhance file directory capabilities, such capabilities have been sorely lacking for unitary computer systems. Hence, the overwhelming majority of computer users who have standalone personal computers, which might also be connectable to a larger computer system, have had a need for a system that can provide the unique file management and tracking capabilities mentioned.
Several key problems still exist with conventional directory structures. The first of these is the somewhat rigid nature of the directory structure once such a structure is defined; which, for example requires that unique file names be used as the identifier within a directory. A second problem is the somewhat arbitrary organizational barrier that is presented by the coupling of physical storage devices and their related sizes to the hierarchical directory structures commonly used in computer storage; which for example, limits the number of files stored in a directory by the storage size of the physical storage size rather than permitting the user to include additional files whose file data would exceed the physical storage limitations of the physical storage device. A third problem is the transient nature of the hierarchical directory structure encountered when using removable or remote storage; which, for example, is often the result of the directory information for a storage medium only being present when the storage medium is connected to the system. These problems make it difficult for both computer users and data management programs to organize and efficiently work with a computer file system, if at all.
While there have been a number of attempts to solve these problems, in general the attempts have failed to address them from a perspective which present embodiments of the invention realized.
Importantly, the present invention arrives at its solutions in manners which maintain compatibility and accessibility of a native file directory system. The new file system presented by several embodiments of the invention does not necessarily replace the native file system that the end user has selected; but rather, it is capable of working in concert with the native file system. In this manner, it can provide, for example, a file system for use by both the operating system of the computer system and application programs of the computer system.
The present invention includes a variety of aspects which may be selected in different combinations based upon the particular needs being addressed. The first aspect of the invention is that it in no way interferes with the current operation of the computer system""s hierarchical directory structures or coupling to physical file storage devices. The end user may continue to use the file storage system in the same fashion to which they have become accustomed. In addition, application programs may continue to use the file storage system without modification. However, various components of the virtual directory and navigation system can seamlessly link with the operating system of the computer to provide a parallel method for organizing, accessing and maintaining the computer system""s storage. In addition, this capability can be provided for a unitary computer system, such as a personal computer that can operate as a standalone unit.
First, a set of active processes can be used to traverse a native file system""s directory hierarchy and relay the directory information to the virtual directory system for organization and permanent storage (e.g., traversing the directory of the hard drive on a personal computer and copying the directory information to the t directory system). Then, Interceptor modules can be used to link with the native file system""s I/O procedures to passively intercept changes being made to the native file system as those changes occur. This night be done for all physical file storage devices of the computer system and regardless of the application program being run. The Interceptor modules then can relay the changes to the virtual directory system for organization and permanent storage. Using this method the native file system""s hierarchical directory can be maintained at the same time that a parallel virtual directory system is built and updated.
Another feature of the invention is that when a new piece of removable media is inserted into the computer system, or a remote storage site is connected to the computer system, the Interceptor modules can detect the coupling of newly mounted media to the system, actively read the directory structures of the mounted media, and relay the directory structures"" information to the virtal directory system. Changes to the directory information of the mounted media can be detected and transferred to the virtual directory system.
An important benefit of the invention is that the virtual directory system also can connect to the native file system of the computer system in such a way that the virtual directory system appears to be a physical storage device. However, it has the advantage that if a user elected to the virtual directory system could represent all of the files contained on all of the physical file storage devices connected to the computer system. Because the files stored on the physical storage devices can be represented in the virtual directory system and because the virtual directory system has among its characteristics the qualities of a relational database, the file information for the various files can be reorganized, reconfigured, or searched easily. These features allow the user greater flexibility in how files are viewed and how the user finds data. Additionally, the database can overcome the requirement of unique file names, as imposed by traditional hierarchical directory systems. Multiple instances of a given file name can now be presented in the same directory with the uniqueness of the file data determined by the time the file was modified, the media it was stored on, or some other file characteristic.
When a user accesses a file via the virtual directory system the virtual directory system can retrieve the file from the appropriate storage device via the Interceptor modules. If the user accesses through the virtual directory system a file that is not on-line because the media is not mounted (i.e., connected to the computer system) or the network connection is not active, the virtual directory can automatically load the media if it can be done via mechanized means, prompt the user to assist in loading the required media, or even establish a connection to the service having the media. This removes the burden from the user of needing to search multiple pieces of media to find the desired file. Similarly, when a user stores a file via the virtual directory system, the virtual directory system can store the file in a preselected storage location, prompt the user for storage location instructions, or assist, as mentioned above, in coupling the appropriate storage device to the computer system.
Information management processes (IMPs)(3) can provide more efficient execution of storage processes due to their understanding of the virtual directory system""s unique information capabilities. These information management processes can be accomplished as application programs that communicate directly with the virtual directory system""s database through a private interface, such as the local interface in the Microsoft(trademark) Windows(trademark) 95 system. The information management processes benefit from their ability to share a common directory system that spans all media types. For example, this means that an application that specializes in disk grooming processes (removes files to that have not been used for a long period of time) can verify that the system""s backup program has copied one or more instances of the file to be groomed (removed from the hard disk) thereby ensuring that, should the user decide to access the file in the future, that a copy of the file is stored on removable media or a remote storage site.